Управление центрами затрат и лимитами

BudgetManager

Управление центрами затрат и лимитами.

class yandex_b2b_go.budget.BudgetManager(client: Client)

Атрибуты

  • BudgetLimitManager — для управления лимитами.

    limit: BudgetLimitManager
    
  • BudgetCostCenterManager — для управления центрами затрат.

    cost_center: BudgetCostCenterManager
    

BudgetLimitManager

Менеджер для управления лимитами.

class yandex_b2b_go.budget.BudgetLimitManager(client: Client)

Методы

  • list — возвращает список существующих лимитов.
  • update — меняет персональный лимит сотрудника.

List

Возвращает список существующих лимитов.

async def list(
    service: Optional[Service] = None, 
    department_id: Optional[str] = None, 
    limit: Optional[int] = None, 
    offset: Optional[int] = None,
    search: Optional[str] = None, 
    sorting_order: Optional[SortingOrder] = None, 
    sorting_field: Optional[str] = None
) -> BudgetLimitListResponse

Параметры

  • service — список лимитов по определенному сервису.
  • department_id — список лимитов по определенному департаменту.
  • limit — количество выводимых записей. При отсутствии данного параметра возвращается информация о первых 100 записях.
  • offset — количество пропускаемых записей. При отсутствии данного параметра возвращается информация начиная с первой записи.
  • search — дополнительный фильтр лимитов (по полному совпадению в поле title).
  • sorting_order — направление сортировки.
  • sorting_field — поле, по которому сортировать.

В случае успешного выполнения возвращает класс BudgetLimitListResponse.

Если переданы неверные параметры, возвращает ошибку ValidationError.

Если код ответа не равен 200, возвращает ошибку ApiError.

Пример вызова

import asyncio

from yandex_b2b_go import Client
from yandex_b2b_go import BudgetManager
from yandex_b2b_go import typing, errors

TOKEN = '<ваш токен>'

async def main():
client = Client(token=TOKEN)
budget_manager = BudgetManager(client=client)
try:
    limits_list = await budget_manager.limit.list(
        service=typing.Service.taxi,
        limit=5,
    )
    ...
except errors.ValidationError as e:
    return str(e.args)
except errors.ApiError as e:
    return e

asyncio.run(main())

Update

Меняет персональный лимит сотрудника.

async def update(
    user_id: str, 
    budget_limit: Union[BudgetLimitTaxiRequest, BudgetLimitEatsRequest, BudgetLimitGroceryRequest, 
    BudgetLimitTankerRequest, BudgetLimitDriveRequest, BudgetLimitCargoRequest, BudgetLimitTravelRequest]
) -> BudgetLimitUpdateResponse

Параметры

В случае успешного выполнения возвращает класс BudgetLimitUpdateResponse.

Если переданы неверные параметры, возвращает ошибку ValidationError.

Если код ответа не равен 200, возвращает ошибку ApiError.

Пример вызова

import asyncio

from yandex_b2b_go import Client
from yandex_b2b_go import BudgetManager
from yandex_b2b_go import typing, errors

TOKEN = '<ваш токен>'

async def main():
    client = Client(token=TOKEN)
    budget_manager = BudgetManager(client=client)
    try:
        budget_limit = typing.BudgetLimitTaxiRequest(
            title='Название лимита',
            client_id='id клиента',
            service=typing.Service.taxi,
            categories=['child_tariff', 'cargo', 'business', 'courier', 'express'],
            limits=typing.Limits(
                orders_cost=typing.Measure(
                    value=818181,
                    period=typing.MeasurePeriod.month,
                ),
                orders_amount=typing.Measure(
                    value=2,
                    period=typing.MeasurePeriod.day,
                )
            )
        )
        response_update = await budget_manager.limit.update(
            user_id='f1387…5e179',
            budget_limit=budget_limit
        )
        ...
    except errors.ValidationError as e:
        return str(e.args)
    except errors.ApiError as e:
        return e

asyncio.run(main())

BudgetCostCenterManager

Управление центрами затрат.

class yandex_b2b_go.budget.BudgetCostCenterManager(client: Client)

Метод

  • list — возвращает список существующих центров затрат.

List

Возвращает список существующих центров затрат.

async def list(
    limit: Optional[int] = None, 
    offset: Optional[int] = None
) -> BudgetCostCenterListResponse

Параметры

  • limit — количество выводимых записей. При отсутствии данного параметра возвращается информация о первых 100 записях.
  • offset — количество пропускаемых записей. При отсутствии данного параметра возвращается информация начиная с первой записи.

В случае успешного выполнение возвращает класс BudgetCostCenterListResponse.

Если переданы неверные параметры, возвращает ошибку ValidationError.

Если код ответа не равен 200, возвращает ошибку ApiError.

Пример вызова

import asyncio

from yandex_b2b_go import Client
from yandex_b2b_go import BudgetManager
from yandex_b2b_go import typing, errors

TOKEN = '<ваш токен>'


async def main():
    client = Client(token=TOKEN)
    budget_manager = BudgetManager(client=client)
    try:
        cost_centers = await budget_manager.cost_center.list(limit=5, offset=10)
        ...
    except errors.ValidationError as e:
        return str(e.args)
    except errors.ApiError as e:
        return e

asyncio.run(main())
Предыдущая
Следующая